Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many computing tasks are distributed across a number of different computer systems and/or a number of different computing components.
One task which has recently been made easier and more efficient by the use of computers is the creation and modification of graphic layout compositions. Layout compositions are constructs and documents made up of graphics, text, and possibly more, which may be employed by businessmen, engineers, scientists, and the like to describe and illustrate processes and constructs within their domains. An example of a layout composition is a flow chart depicting a particular computer program algorithm. Another example of a layout composition is a business process flow chart depicting the start to finish process of a particular business endeavor. An example of such layout compositions are those which may be produced using Microsoft's Visio™.
Such layout compositions may generally include a number of nodes which represent particular items of interest in the particular domain. For instance, a node may be a diamond or triangle which represents a business decision. A node may be a rectangle which represents a computer or business process. A node may be another shape which represents printing output on a particular printer. Nodes within a layout composition are limited only by the particular implementations of particular domain-specific or generally applicable layout systems.
In complicated business systems and complicated computer processes, the arrangement of a layout composition representing a system or process may, itself, become commensurately complicated. Manual layout of a representative layout composition may be inordinately time-consuming or may be, for some purposes, impossible.
Because of the intricate and complicated nature of a process which is to be depicted, it is often desirable to have automatic formatting of a layout composition (i.e., auto layout). However, auto layout of a layout composition may, itself, introduce correspondingly associated problems in a layout composition.
For instance, a layout composition, after an auto layout, may evenly space a large number of parallel processes (represented by nodes within the layout composition). A particular user of the layout composition might, however, desire that most nodes representing parallel processes be moved to the side as they may not be considered important. It may be desired by a user that a small number of the nodes representing parallel processes be grouped with greater spacing or in an area by themselves to indicate their relatively greater importance.
It is not always possible, using existing layout composition methods, products, and systems, to adjust or modify a layout composition which may have been formatted manually or by an auto layout. Even after having employed an auto layout, it may be impossible to manually adjust or modify the layout composition because any change to any particular node or node formatting may entail a corresponding change or modification to those nodes associated with the modified node.
Furthermore, when sharing a layout composition with others and allowing multiple authors to edit and update the composition, making revisions such as adding a shape may be difficult and frustrating if the edit must be done manually and possibly disruptive if done by typical auto-layout mechanisms, because it often requires a recomputation of the layout algorithm which can cause a large degree of repositioning and thereby destroy a user's mental model of the system prior to a change.
Current layout composition products also generally require user interaction to create and modify a layout composition. Correspondingly, it may be advantageous to be able to create or modify a layout composition using some type of structured input.